The present invention relates generally to computer hardware, and relates more particularly to the configuration of computing systems, for example, servers. Specifically, the present invention provides methods and an apparatus for automatic system parameter configuration for performance improvement.
The overwhelming success of the World Wide Web as a mechanism for facilitating information retrieval and conducting business transactions has led to an increase in the deployment of complex enterprise applications. These applications typically run on web application servers, which manage tasks including concurrency, memory management, database access and the like. The performance of an application server depends heavily on appropriate configuration, which is a difficult and error-prone task due to a large number of configuration parameters (which may number more than one hundred) and complex interactions between these parameters.
FIG. 1 is a schematic diagram illustrating a typical Java 2 Enterprise Edition (J2EE) based application server system 100. The system 100 includes a web server 102, an application server 104 and a database 106. Typically, HTTP and web service requests flow through the web server 102 to the application server 104, which further comprises a web container 108, an Enterprise Java Bean (EJB) container 110 and a data source 112. Within the application server, requests typically flow from the web container 108 to the EJB container 110 to the data source 112 to the database 106. Each component 108, 110 and 112 of the application server has configurable parameters that can significantly impact system performance.
Despite the importance of configuration, the setting of parameters is an imprecise practice. For example, developers typically use rules-of-thumb, heuristics, or best practice guidelines provided by software vendors to derive the settings. However, configuration depends largely on the particular application being deployed and its expected workload, as well as the configuration of the systems with which it interacts.
Thus, there is a need in the art for a method and apparatus for automatic system parameter configuration for performance improvement.